package io.gitee.hefren.hhregistry.service;

import io.gitee.hefren.hhregistry.beans.InstanceMeta;

import java.util.List;
import java.util.Map;

public interface RegisterService {

    /**
     * 注册服务
     * @param server
     * @param instance
     * @return
     */
    InstanceMeta register(String server, InstanceMeta instance);

    /**
     * 注销服务
     * @param server
     * @param instance
     * @return
     */
    InstanceMeta unregister(String server, InstanceMeta instance);

    /**
     * 查询服务实例
     * @param server
     * @return
     */
    List<InstanceMeta> findAllInstances(String server);

    /**
     * 查询某一个服务的版本
     * @param server
     * @return
     */
    Long version(String server);

    /**
     * 查询多个服务的版本
     * @param servers
     * @return
     */
    Map<String, Long> versions(String... servers);

    /**
     * 刷新server和instance的时间戳
     * @param servers
     * @param instance
     * @return
     */
    Long renew(InstanceMeta instance, String... servers);


    
}
